#include <iostream>

using namespace std;

class Person1{
public:
    void showPerson1(){
        cout << "person1 show" << endl;
    }
};

class Person2{
public:
    void showPerson2(){
        cout << "person2 show" << endl;
    }
};

template<class T>
class TestClass{
public:
    T obj;
    void func1(){  // 类模板中的成员函数，不是一开始就创建的，而是在模板调用时再生成的
        obj.showPerson1();
    }
    void func2(){
        obj.showPerson2();
    }
};

void test01(){
    TestClass<Person1> t1;
    t1.func1();
//    t1.func2();   // 编译会报错，函数调用时才会去创建成员函数
}

int main() {
    test01();
    return 0;
}
